Embodiments of the present invention relate to methods and systems for remotely deploying computer programs, and more particularly, to methods and systems for optimizing the remote deployment of computer programs.
Currently, many entities such as large corporations and other companies purchase a significant number of computing devices in order to set up computer nodes or cluster systems, which are deployed in bulk to address business demands. Moreover, such entities often operate several types of applications on different nodes as mandated by the specific needs and requirements of the entity. In this regard, such computer nodes or cluster systems cooperate to accomplish one or more applications through the connection of local area network or wide area network.
A high overhead is typically associated with the manual installation of required application programs onto a plurality of computers systems that make up such computer nodes or cluster systems. For instance, manual installation is often performed by installing application programs one by one, resulting in the significant usage of professional manpower and time. Moreover, manual installation will affect availability of the system, e.g., during the time required for manual configuration.
Remote deployment systems are capable of transmitting and installing computer programs to particular computer nodes across a wide area network. For instance, remote deployment may be implemented as single-thread remote deployment. In a single-thread implementation, programs are downloaded one by one to a local computing device. Once downloaded, the programs are sequentially installed. Accordingly, the total time of remote deployment is the sum of download time of all computer programs and installation time of all computer programs. Remote deployment may also be implemented in a dual-thread approach where a first thread is used to download programs and a second thread is used to begin installing the downloaded programs. Thus, the total time of remote deployment is the sum of download time of all computer programs and installation time of the computer programs that have not been installed as of the time when downloading of all computer programs is completed.
Regardless of whether deployment is manual or remote, single-threaded or dual-threaded, the above conventional approaches require users to expend a large amount of time. Especially where remote deployment is performed for a corporation having a lot of computer nodes. The time required for a conventional deployment greatly affects the normal operation and services provided by a corresponding corporation. Moreover, the time required for a conventional deployment significantly increases the corporation's management expenses.